﻿using SD.Infrastructure.DomainServiceBase;
using SlamDunk.MES.Domain.Entities.StockContext;
using System.Collections.Generic;

namespace SlamDunk.MES.Domain.IDomainServices
{
    /// <summary>
    /// 库存单据领域服务接口
    /// </summary>
    public interface IStockOrderService : IDomainService<StockOrder>
    {
        #region # 生成库存结转记录 —— ICollection<StockSettlement> GenerateStockSettlements(...
        /// <summary>
        /// 生成库存结转记录
        /// </summary>
        /// <param name="stockOrder">库存单据</param>
        /// <returns>库存结转记录集</returns>
        ICollection<StockSettlement> GenerateStockSettlements(StockOrder stockOrder);
        #endregion

        #region # 生成物料条码 —— ICollection<MaterialBarcode> GenerateMaterialBarcodes(...
        /// <summary>
        /// 生成物料条码
        /// </summary>
        /// <param name="stockOrder">库存单据</param>
        /// <returns>物料条码集</returns>
        ICollection<MaterialBarcode> GenerateMaterialBarcodes(StockOrder stockOrder);
        #endregion

        #region # 生成出/入库记录 —— ICollection<BoundRecord> GenerateBoundRecords(StockOrder stockOrder)
        /// <summary>
        /// 生成出/入库记录
        /// </summary>
        /// <param name="stockOrder">库存单据</param>
        /// <returns>出/入库记录集</returns>
        ICollection<BoundRecord> GenerateBoundRecords(StockOrder stockOrder);
        #endregion
    }
}
